import axios from "axios";
import { getToken, hasToken } from "utils/storage";
import { message } from "antd";
import history from "utils/history";

export const baseURL = 'http://geek.itheima.net/v1_0/'

const instance = axios.create({
    baseURL,
    timeout:5000
})

// 添加请求拦截器
instance.interceptors.request.use(function (config) {
    if(hasToken()){ // 请求头加入 token
        config.headers.Authorization = `Bearer ${getToken()}`
    }
    // 在发送请求之前做些什么
    return config;
    }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    return response.data;
    }, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 当出现401：状态码 401 Unauthorized 代表客户端错误，指的是由于缺乏目标资源要求的身份验证凭证，发送的请求未得到满足。
    // console.log(error.response.status)
    if(!error.response) {
        message.error('网络繁忙，请稍后重试。',1)
    }
    if(error.response.status === 401) {
        message.warning('登录信息错误，即将返回登录页面！',0.8,()=>{
            history.push('/login')
        })
    }
    // 对响应错误做点什么
    return Promise.reject(error);
});

export default instance